
package com.dhcc.core.config.properties;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.Collections;
import java.util.List;

@Component
@ConfigurationProperties(prefix = "spring.data.mongodb")
public class MongoDataSourceProperties {

    // 为dataSources提供默认值，避免空指针异常
    private List<String> uris = Collections.emptyList();

    /**
     * 获取数据源列表。
     * @return 数据源列表，若未配置则返回空列表。
     */
    public List<String> getUris() {
        return uris;
    }

    /**
     * 设置数据源列表。
     * @param uris 数据源列表。接受null输入，内部会转换为空列表。
     */
    public void setUris(List<String> uris) {
        if (uris == null) {
            this.uris = Collections.emptyList();
        } else {
            this.uris = uris;
        }
    }

    // 以下为建议的额外方法和属性，用于更细致地处理配置

    // 例如，如果需要确保dataSources中的每个元素都符合特定格式，可以添加一个方法进行校验
    public boolean isValid() {
        for (String uri : uris) {
            // 假设我们需要确保每个数据源不是空字符串
            if (uri == null || uri.trim().isEmpty()) {
                return false;
            }
            // 这里可以添加更多的校验逻辑
        }
        return true;
    }

    // 在实际应用中，可能还需要处理更多配置相关的逻辑，例如加载外部配置、处理特定期望格式等
}